iT邦幫忙

2023 iThome 鐵人賽

DAY 2
0
自我挑戰組

Makefile的入門講解系列 第 7

Makefile的入門講解 - day 7 簡單的測試1

  • 分享至 

  • xImage
  •  

我們先來寫一個簡單的 make
我習慣是用 Bitvise 來執行

首先我們要先寫一個 .c 的 test

touch test.c
vim test.c

在 test.c 中就寫一個 打印 test 的程序

#include<stdio.h>

int main()
{
        printf("test  \n");
        return 0;
}

這樣就完成了 測試的 .c 檔案
接下來就是簡單的 makefile

touch makefile
vim makefile

在 makefile 中寫一個簡單的程序

test:test.o
        gcc -o test test.o
        
test.o:test.c
        gcc -o test.o -c test.c

clean:
        rm -f test test.o
        

簡單來講一下 make 的組合

  1. make 會先找最上面那個目標
  2. make 的組成如下
target(要生成的文件): dependencies(被依赖的文件)
<tab> 命令1
<tab> 命令2
.......

先來看看最上面的就是 test:test.o
所以:

  1. test 就是 target(要生成的文件)
  2. test.o 就是 dependencies(被依赖的文件)
  3. 指令為 gcc -o test test.o
test:test.o
        gcc -o test test.o

再來就是尋找 dependencies 的生成,下面就寫道 test.o 是用 test.c 生成

  1. test.o 是 target,test.o 是 dependencies
  2. 指令為 gcc -o test.o -c test.c
test.o:test.c
        gcc -o test.o -c test.c

大部分的 make 會先建立目標文件(.o),再去執行各個 .c 檔案
test.o 就是目標文件,test.c 就是剛剛寫的文件,利用 gcc 建立

所以步驟大致上就是:

  1. 依賴 test.c 建立了 test.o (指令為: gcc -o test.o -c test.c )
  2. 再依賴 test.o 建立了 test (指令為: gcc -o test test.o )
  3. 就製作出了 test

接下來用 執行 make

make

應該會看到
https://ithelp.ithome.com.tw/upload/images/20230925/20135862BPG1OoXc1u.jpg

再來執行

ls

就會多出兩個生成物 test 跟 test.o
https://ithelp.ithome.com.tw/upload/images/20230925/201358620HfQZrK2LL.jpg

其中 test 就是最後生成的檔案
試試看

./test

就可以執行了


上一篇
Makefile的入門講解 - day 6 簡單的講一下 Vim
下一篇
Makefile的入門講解 - day 8 簡單的測試2 - 規則說明1
系列文
Makefile的入門講解11
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言